package com.ruoyi.safe.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

/**
 * 安全罚款台账对象 biz_safe_fine
 * 
 * @author ruoyi
 * @date 2023-11-11
 */
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BizSafeFineDTO extends BasePageAppDTO
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    /** 编号 */
    @Excel(name = "编号")
    private String safeNumber;

    /** 罚款单位 */
    @Excel(name = "罚款单位")
    private String fineUnit;

    /** 罚款对象 */
    @Excel(name = "罚款对象")
    private String fineUser;

    /** 罚款说明 */
    @Excel(name = "罚款说明")
    private String fineExplain;

    /** 罚款来源(字典) */
    @Excel(name = "罚款来源(字典)")
    private String fineSource;

    /** 罚款金额(元) */
    @Excel(name = "罚款金额(元)")
    private BigDecimal fineMoney;

    /** 附件 */
    @Excel(name = "附件")
    private String fineAttachment;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 罚款按钮 */
    @Excel(name = "罚款按钮")
    private String fineButton;

    /** 项目id */
    @Excel(name = "项目id")
    private Long projectId;

    private String createBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 检查记录id
     */
    private Long recordId;

    /** 搜索值 */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String searchValue;

    /** 更新者 */
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private Date updateTime;

    /** 备注 */
    private String remark;

    /** 请求参数 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Map<String, Object> params;
}
